package com.example.kaoshi;

import java.util.Scanner;

/**
 * Created by Quincy on 2018/10/7.
 * 小B最近承接了一个工程，为一块广场铺设地砖。待铺设的广场是矩形的，大小为N*M平米，业主要求铺设的地砖规格统一，大小为a*a平米。
 * 地砖可以超出待铺设的区域，但必须将指定的区域完全覆盖。铺设时，要求地砖边缘需与指定区域边缘平行，且必须用整块的地砖铺设，不允许将地砖破碎铺设。
 * 为节约成本，小B需要知道铺设最少需要多少地砖。请你帮忙计算她最少需要采购的地砖数。
 */
public class Te {
    /**
     * 输入
     输入的第一行为一个正整数T，表示有T组测试数据。随后的T行中，每行为一组测试数据。每组测试数据包含由3个正整数构成，分别为N、M和a，其中1<=N, M, a <=10^9。

     输出
     对每组测试数据，单独输出一行，为所需采购的地砖数。
     * */
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        long n,m,a;

        long i, j , count;
        int T = scanner.nextInt();
        for (int k = 0; k < T; k++){
            n = scanner.nextLong();
            m = scanner.nextLong();
            a = scanner.nextLong();

            if ((n%a) == 0)
                i = n/a;
            else
                i = n/a + 1;
            if ((m%a) == 0)
                j = m/a;
            else j = m/a +1;

            count = i*j;
            System.out.println(count);
        }
//        int T,M,N;
//        int a;
//        int count;
//        T = scanner.nextInt();
//        for (int i = 0; i < T ; i++){
//            M = scanner.nextInt();
//            N = scanner.nextInt();
//            a = scanner.nextInt();
//            count = ((M+a-1)/a)*((N+a-1)/a);
//            System.out.println(count);
//        }
    }
}
